package com.xiangge;
import java.lang.reflect.Constructor;

public class MyClass2 {
    // 定义由私人权限修饰符修饰的属性
    private int id;

    // 创建满参构造方法
    public MyClass2(int id) {
        this.id = id;
    }

    // 进行方法重写
    @Override
    public String toString() {
        return "MyClass{" + "id=" + id + '}';
    }

    public static void main(String[] args) {
        // 反射机制
        try {
            // 获取MyClass的Class对象
            Class<?> clazz = MyClass.class;

            // 错误的尝试：获取int的Class对象，这是不可能的
            // Class<int> intClass = int.class; // 这行代码会编译错误


            // 获取MyClass的带有一个int参数的构造方法
            Constructor<?> constructor = clazz.getDeclaredConstructor(int.class);

            // 使用构造方法创建MyClass的实例
            MyClass myClass = (MyClass) constructor.newInstance(1);

            // 输出对象
            System.out.println(myClass); // 输出：MyClass{id=1}
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

}